\subsection{Модельный язык L}
% \addcontentsline{toc}{section}{Модельный язык L}

В дальнейшем центральным примером, для которого мы будем разрабатывать принтеры, будет модельный язык L. Именно для этого языка будет реализован шаблонный принтер.

Язык L состоит из небольшого числа операторов:
\begin{enumerate}
	\item присваивание;
	\item цикл с предусловием;
	\item ветвление;
	\item последовательное выполнение;
	\item чтение с занесением в переменную;
	\item печать целочисленного выражения.
\end{enumerate}

Также в языке есть выражения. Выражения бывают трех типов:
\begin{enumerate}
	\item константа;
	\item переменная;
	\item бинарная операция.
\end{enumerate}

На рисунке~\ref{fig:lEx} приведен пример программы на языке L. В данном случае, это программа, которая считывает с консоли два числа, а потом возводит второе число в степень, равную первому.

\begin{figure}[h!]
	\centering
	% \inputminted{pascal}{codes/lEx.l}
	\lstinputlisting[language=llang]{Podkopaev/codes/lEx.l}
	\caption{Быстрое возведение в степень на языке L}
	\label{fig:lEx}
\end{figure}